home *** CD-ROM | disk | FTP | other *** search
- 1 REM **********************
- 2 REM * THE RECIPE BOX *
- 3 REM * BY JAN COSTENBADER *
- 4 REM * COPYRIGHT (C) 1982 *
- 5 REM * BY MICRO-SPARC INC *
- 6 REM * LINCOLN, MA. 01773 *
- 7 REM **********************
- 10 CV$ = "A": REM 10.26.84
- 20 GOTO 9000
- 30 PRINT : PRINT CL$: PRINT D$;"PR#0": POKE 34,0: HOME : PRINT TAB( 15);"RECIPE BOX": FOR X = 1 TO 40: PRINT "=";: NEXT : PRINT :PR = 0
- 40 POKE 32,4: PRINT : PRINT "1=ENTER A NEW RECIPE": PRINT "2=CHANGE A RECIPE ": PRINT "3=PRINT INDEX OF RECIPES"
- 50 PRINT "4=PRINT A RECIPE": PRINT "5=EXIT SYSTEM"
- 60 POKE 32,0: VTAB 16:PM$ = "FUNCTION CHOICE: ":UL = 5: GOSUB 300
- 70 ON CH GOTO 1000,2000,3000,4000,5000
- 75 ND = 0:CK = 1
- 80 CK$ = MID$ (I$,CK,1): IF CK$ <"0" OR CK$ >"9" THEN 90
- 85 CK = CK +1:ND = ND +1: GOTO 80
- 90 IF ND >3 THEN CALL BL: PRINT "IT LOOKS AS IF YOU'RE FEEDING AN ARMY": PRINT "USE A QUANTITY LESS THAN 1000": PRINT
- 95 RETURN
- 100 HOME : VTAB VT: HTAB 1:CL = 1:NW% = 1:LS(1) = 1
- 102 GET J$(CL)
- 104 IF J$(CL) = CHR$(8) AND NW% = 1 AND CL = 1 THEN 102
- 106 IF J$(CL) < > CHR$(8) THEN 114
- 108 IF CL >1 THEN PRINT CHR$(8);:CL = CL -1: GOTO 102
- 110 IF NW% >1 THEN NW% = NW% -1:VT = VT -1:CL = LS(NW%): VTAB VT: HTAB CL
- 112 GOTO 102
- 114 IF J$(CL) = CHR$(13) THEN LS(NW%) = CL: GOTO 134
- 116 IF ASC(J$(CL)) <32 THEN 102
- 118 PRINT J$(CL);: IF J$(CL) = CHR$(32) THEN LS(NW%) = CL
- 120 CL = CL +1: IF CL <40 THEN 102
- 122 HTAB LS(NW%): CALL -868:VT = VT +1: VTAB VT: HTAB 1
- 124 IF NW% = 16 THEN 134
- 126 FOR X = LS(NW%) +1 TO 40: PRINT J$(X);: NEXT
- 128 CL = X -LS(NW%) -1:NW% = NW% +1:LS(NW%) = 1
- 130 IF NW% = 16 THEN CALL BL: INVERSE : FLASH : HTAB 10: PRINT "LAST LINE";: NORMAL : HTAB 1
- 132 GOTO 102
- 134 PRINT : PRINT : HTAB 5: PRINT "ONE MOMENT PLEASE"
- 136 LI = VT -NW% -1: FOR X = 1 TO NW%:WD$(X) = "": FOR X1 = 1 TO LS(X)
- 138 J = PEEK(L%(LI +X) +X1 -1):J$ = CHR$(J -128)
- 140 WD$(X) = WD$(X) +J$: NEXT : NEXT
- 142 RETURN
- 150 I = 0: CALL BL
- 152 REM : STANDARD DATA ENTRY
- 154 IF I <0 THEN I = 0
- 156 IF NC <6 GOTO 160
- 158 IF I >NC -5 THEN CALL BL
- 160 GET J$(I)
- 162 IF J$(I) = CHR$(27) THEN POP : GOTO 30
- 164 IF J$(I) = CHR$(13) THEN I = I -1: GOTO 178
- 166 IF J$(I) = CHR$(21) THEN 160
- 168 IF J$(I) = CHR$(8) AND I = 0 THEN PRINT "";: GOTO 154
- 170 IF J$(I) = CHR$(8) THEN PRINT J$(I);:I = I -1: GOTO 154
- 172 IF ASC(J$(I)) <32 THEN GOTO 160
- 174 IF NC = I THEN PRINT "";: GOTO 160
- 176 PRINT J$(I);:I = I +1: GOTO 154
- 178 PRINT : PRINT :I$ = "": FOR J = 0 TO I:I$ = I$ +J$(J): NEXT : RETURN
- 200 POKE 34,0: HOME :TB = 20 *(PR +1) - INT( LEN(TL$)/2): IF TB >0 THEN PRINT TAB( TB);
- 205 PRINT TL$
- 210 FOR X = 1 TO 40 *(PR +1): PRINT "=";: NEXT : PRINT : IF PR = 0 THEN POKE 34,3
- 215 RETURN
- 225 POKE 34,0: HOME :TB = 20 *(PR +1) - INT( LEN(TL$)/2): IF TB >0 THEN PRINT TAB( TB);
- 230 PRINT TL$
- 235 TB = 20 *(PR +1) - INT( LEN(T1$)/2): IF TB >0 THEN PRINT TAB( TB);
- 240 PRINT T1$
- 245 FOR X = 1 TO 40 *(PR +1): PRINT "=";: NEXT : PRINT : IF PR = 0 THEN POKE 34,4
- 250 RETURN
- 300 PRINT PM$;
- 305 GET CH$: IF CH$ = CHR$(27) THEN POP : GOTO 30
- 310 CH = VAL(CH$): IF CH <1 OR CH >UL THEN 305
- 315 PRINT : RETURN
- 325 PRINT D$;"PR#";PR: PRINT CHR$(29)
- 330 IF PR >0 THEN PRINT CHR$(9);"80N"
- 335 RETURN
- 350 VTAB 22: HTAB 1: PRINT "HIT 'RETURN' TO CONTINUE...";: GOTO 360
- 355 VTAB 22: PRINT "HIT 'RETURN' FOR MORE...";
- 360 GET CH$: IF CH$ = CHR$(27) THEN POP : GOTO 30
- 365 IF ASC(CH$) < >13 THEN 360
- 370 PRINT : HOME :C = 0: RETURN
- 375 HOME : PRINT TAB( 13);"OUTPUT CHOICES": PRINT : PRINT " 1=OUTPUT TO SCREEN": PRINT " 2=OUTPUT TO PRINTER"
- 380 VTAB 15:PM$ = "OUTPUT CHOICE: ":UL = 2: GOSUB 300
- 385 PR = CH -1: RETURN
- 410 HOME : VTAB 8: PRINT " THERE ARE NO RECIPES IN THE FILE": GOSUB 350: RETURN
- 420 HOME : VTAB 8: PRINT "THAT PAGE NUMBER IN NOT IN COMPUTER": GOSUB 350: RETURN
- 450 PRINT OP$;IX$;L$
- 460 PRINT WR$;IX$;",R";PN: PRINT TR%(PN): PRINT NR$(PN)
- 470 PRINT NS%: PRINT PI%: PRINT PP%
- 480 PRINT CL$: RETURN
- 500 PRINT OP$;IX$;L$
- 510 PRINT WR$;IX$;",R0"
- 515 IF N = 0 THEN N = 1
- 520 PRINT N: PRINT NX%
- 530 PRINT CL$;IX$: RETURN
- 550 PRINT OP$;IX$;L$
- 560 PRINT RD$;IX$;",R0"
- 570 INPUT N: INPUT NX%
- 580 PRINT CL$;IX$
- 590 RETURN
- 600 PRINT OP$;RF$;LF$
- 602 PRINT OP$;RO$;LO$
- 604 PRINT RD$;RO$;",R0"
- 606 INPUT RN:NR = NX%:PI% = NX%
- 608 FOR X = 1 TO NI%:OP = NR
- 610 IF RN = 0 THEN NR = OP +1: GOTO 624
- 612 PRINT RD$;RO$;",R";RN
- 614 INPUT OP:RN = RN -1: IF X = 1 THEN PI% = OP
- 616 IF X = NI% THEN NR = 0: GOTO 626
- 618 IF RN = 0 THEN NR = NX%: GOTO 626
- 620 PRINT RD$;RO$;",R";RN
- 622 INPUT NR
- 624 IF X = NI% THEN NR = 0
- 626 PRINT WR$;RF$;",R";OP
- 628 PRINT NR
- 630 PRINT IG$(X): NEXT
- 632 PRINT WR$;RO$;",R0"
- 634 PRINT RN
- 636 PRINT CL$
- 638 IF OP > = NX% THEN NX% = OP +1
- 640 RETURN
- 650 PRINT OP$;RF$;LF$
- 652 PRINT OP$;RO$;LO$
- 654 PRINT RD$;RO$;",R0"
- 656 INPUT RN:NR = NX%:PP% = NX%
- 658 FOR X = 1 TO NW%:OP = NR
- 660 IF RN = 0 THEN NR = OP +1: GOTO 674
- 662 PRINT RD$;RO$;",R";RN
- 664 INPUT OP:RN = RN -1: IF X = 1 THEN PP% = OP
- 666 IF X = NW% THEN NR = 0: GOTO 676
- 668 IF RN = 0 THEN NR = NX%: GOTO 676
- 670 PRINT RD$;RO$;",R";RN
- 672 INPUT NR
- 674 IF X = NW% THEN NR = 0
- 676 PRINT WR$;RF$;",R";OP
- 678 PRINT NR
- 680 PRINT WD$(X): NEXT
- 682 PRINT WR$;RO$;",R0"
- 684 PRINT RN
- 686 PRINT CL$
- 688 IF OP > = NX% THEN NX% = OP +1
- 690 RETURN
- 700 PRINT OP$;IX$;L$
- 710 PRINT RD$;IX$;",R";PN
- 720 INPUT TR%(PN): CALL 800:NR$(PN) = MID$ (CV$,1)
- 730 INPUT NS%: INPUT PI%: INPUT PP%
- 740 PRINT CL$;IX$: RETURN
- 800 PRINT OP$;RF$;LF$:NI% = 1:RN = PI%
- 805 PRINT RD$;RF$;",R";RN
- 810 RI(NI%) = RN
- 815 INPUT RN: CALL 800:IG$(NI%) = MID$ (CV$,1)
- 818 IF RN >10000 THEN A$ = STR$(RN):RN = ASC( RIGHT$(A$,4)) +1
- 820 IF RN THEN NI% = NI% +1: GOTO 805
- 825 PRINT CL$;RF$: RETURN
- 850 PRINT OP$;RF$;LF$:NW% = 1:RN = PP%
- 855 PRINT RD$;RF$;",R";RN
- 860 RD(NW%) = RN
- 865 INPUT RN: CALL 800:WD$(NW%) = MID$ (CV$,1)
- 870 IF RN THEN NW% = NW% +1: GOTO 855
- 875 PRINT CL$;RF$: RETURN
- 900 PRINT OP$;RO$;LO$
- 905 PRINT RD$;RO$;",R0"
- 910 INPUT RN
- 915 FOR X = 1 TO WS%
- 920 PRINT WR$;RO$;",R";X +RN
- 925 PRINT RD(X): NEXT
- 930 PRINT WR$;RO$;",R0"
- 935 PRINT RN +WS%
- 940 PRINT CL$;RO$: RETURN
- 950 PRINT OP$;RO$;LO$
- 955 PRINT RD$;RO$;",R0"
- 960 INPUT RN
- 965 FOR X = 1 TO N1%
- 970 PRINT WR$;RO$;",R";X +RN
- 975 PRINT RI(X): NEXT
- 980 PRINT WR$;RO$;",R0"
- 985 PRINT RN +N1%
- 990 PRINT CL$;RO$: RETURN
- 1000 TL$ = "ENTER RECIPES ": GOSUB 200
- 1010 PRINT : PRINT "WHAT IS NAME OF RECIPE ": PRINT :NC = 40: VTAB 8: HTAB 1: PRINT LEFT$(DT$,NC): HTAB 1: VTAB 8: GOSUB 150:NA$ = I$
- 1020 TL$ = NA$: GOSUB 200
- 1030 POKE 32,4: PRINT : FOR X = 1 TO NH: PRINT X;". ";HD$(X): NEXT : POKE 32,0: PRINT
- 1040 HTAB 1: VTAB NH +7: CALL CS:PM$ = "WHAT TYPE ":UL = NH: GOSUB 300:T = CH
- 1050 HOME : PRINT "HOW MANY SERVINGS? ";:NC = 2: GOSUB 150:NS% = VAL(I$)
- 1060 HOME : PRINT : PRINT "CATEGORY=";HD$(T): PRINT : PRINT "THIS WILL SERVE ";NS%
- 1070 PRINT : PRINT "IS THIS CORRECT? ";: GET I$: IF I$ < >"Y" THEN 1000
- 1080 T1$ = "INGREDIENTS": GOSUB 225
- 1090 NI% = 1:NC = 35
- 1100 PRINT "ENTER INGREDIENTS ('RETURN' TO QUIT)": PRINT
- 1110 PRINT NI%;") ";: HTAB 4: PRINT LEFT$(DT$,NC): CALL -998: HTAB 4: GOSUB 150: IF I$ = CHR$(13) GOTO 1140
- 1120 GOSUB 75: IF ND >3 THEN 1110
- 1130 IG$(NI%) = I$:NI% = NI% +1:VT = VT +2: GOTO 1110
- 1140 NI% = NI% -1: HOME : IF NI% = 0 THEN 1090
- 1150 FOR X = 1 TO NI%: PRINT X;") ";IG$(X): NEXT
- 1160 PRINT : PRINT "IS THIS CORRECT ";: GET I$: IF I$ = "Y" THEN 1210
- 1170 PRINT : PRINT : PRINT "WHICH INGREDIENT IS INCORRECT ":CV = PEEK(37):NC = 2: GOSUB 150:X = VAL(I$): IF X <1 OR X >NI% THEN VTAB CV -1: CALL -958: GOTO 1170
- 1180 HOME : PRINT "CHANGE:": PRINT : PRINT X;". ";IG$(X): PRINT : PRINT "TO: ": PRINT
- 1190 PRINT X;". ";:NC = 35: GOSUB 150: GOSUB 75: IF ND >3 THEN 1190
- 1200 IG$(X) = I$: HOME : GOTO 1150
- 1210 T1$ = "PREPARATION INSTRUCTIONS": GOSUB 225
- 1220 HT = 1:VT = 5: POKE 34,4: GOSUB 100
- 1230 HOME : FOR X = 1 TO NW%: PRINT WD$(X): NEXT
- 1240 VTAB 22: HTAB 1: PRINT "IF THIS IS CORRECT HIT 'RETURN'";: GET I$: IF I$ = CHR$(13) THEN GOTO 1260
- 1250 GOTO 1220
- 1260 PRINT :PN = 0: FOR X = 1 TO N: IF TR%(X) = 0 THEN PN = X
- 1270 NEXT : IF PN = 0 THEN N = N +1:PN = N
- 1280 NR$(PN) = NA$:TR%(PN) = T: HOME : PRINT : PRINT "WRITING TO DISK": POKE 34,0
- 1290 GOSUB 600: GOSUB 650: GOSUB 450
- 1300 GOSUB 500
- 1310 GOTO 30
- 2000 TL$ = "CHANGE AN ENTRY": GOSUB 200
- 2005 IF N <1 THEN GOSUB 410: GOTO 30
- 2010 IF I$ = CHR$(27) THEN 30
- 2015 VTAB 6: PRINT "WHAT PAGE NO. DO YOU WISH TO CHANGE? ";:NC = 3: GOSUB 150
- 2020 PN = VAL(I$): IF PN = 0 GOTO 30
- 2025 IF PN >N THEN GOSUB 420: GOTO 2015
- 2030 IF PN = 0 THEN GOTO 30
- 2035 GOSUB 700:TL$ = "CHANGE":T1$ = NR$(PN): GOSUB 225
- 2040 PRINT : PRINT " DO YOU WISH TO CHANGE": POKE 32,4: PRINT : PRINT "1. NAME OF RECIPE": PRINT "2. NUMBER OF SERVINGS": PRINT "3. CATEGORY"
- 2045 PRINT "4. INGREDIENTS": PRINT "5. PREPARATION INSTRUCTIONS"
- 2050 PRINT "6. DELETE RECIPE": PRINT : POKE 32,0
- 2055 PM$ = "WHICH: ":UL = 6: GOSUB 300:C1 = CH
- 2060 ON C1 GOTO 2100,2200,2300,2400,2800,2900
- 2100 HOME : PRINT "CHANGE NAME FROM: ": PRINT : PRINT " ";NR$(PN)
- 2110 PRINT : PRINT "TO: ": PRINT : PRINT " ";:NC = 40: GOSUB 150:NR$(PN) = I$
- 2120 HOME : PRINT "NAME: ";NR$(PN): PRINT "SERVES ";NS%: PRINT "CATEGORY=";HD$(TR%(PN))
- 2130 PRINT : PRINT : PRINT "IS THIS CORRECT? ";: GET I$: IF I$ = "N" THEN GOTO 2060
- 2140 PRINT : GOSUB 450: GOTO 30
- 2200 HOME : PRINT "CHANGE NUMBER OF SERVINGS": PRINT : PRINT " FROM: ";NS%: PRINT
- 2210 PRINT " TO: ";:NC = 2: GOSUB 150:NS% = VAL(I$): GOTO 2120
- 2300 HOME : PRINT : FOR X = 1 TO NH: PRINT X;") ";HD$(X): NEXT : PRINT
- 2310 PRINT "CHANGE HEADING FROM NO. ";TR%(PN): PRINT : PRINT " TO: ";:UL = NH: GOSUB 305:TR%(PN) = CH
- 2320 GOTO 2120
- 2400 HOME : PRINT "DO YOU WISH TO ": PRINT " 1. CHANGE AN INGREDIENT": PRINT " 2. ADD AN INGREDIENT"
- 2410 PRINT :PM$ = "WHICH? ":UL = 2: GOSUB 300: GOSUB 800:N1% = NI%: IF CH = 2 THEN 2590
- 2420 C = 0
- 2430 HOME : FOR X = 1 TO NI%: PRINT X;". ";IG$(X):C = C +1: IF C >16 THEN GOSUB 355
- 2440 NEXT
- 2450 PRINT : PRINT "CHANGE WHICH INGREDIENT? ";:NC = 2: GOSUB 150:X = VAL(I$)
- 2460 IF X <1 OR X >NI% THEN 2450
- 2470 HOME : PRINT "CHANGE INGREDIENT ";X;" FROM: ": PRINT : PRINT IG$(X)
- 2480 PRINT "TO: ": PRINT :NC = 35: GOSUB 150: GOSUB 75: IF ND >3 THEN 2480
- 2490 IG$(X) = I$
- 2500 C = 0: HOME : FOR X = 1 TO NI%: PRINT X;") ";IG$(X):C = C +1: IF C >15 THEN GOSUB 355
- 2510 NEXT
- 2520 VTAB 22: PRINT "IS THIS CORRECT? ";: GET I$: PRINT : IF I$ < >"Y" THEN 2430
- 2530 PRINT OP$;RF$;LF$:RI(NI% +1) = 0
- 2540 FOR X = 1 TO NI%
- 2550 PRINT WR$;RF$;",R";RI(X)
- 2560 PRINT RI(X +1)
- 2570 PRINT IG$(X): NEXT
- 2580 PRINT CL$;RF$: GOTO 30
- 2590 HOME : PRINT "LAST INGREDIENT WAS:"
- 2600 PRINT NI%;") ";IG$(NI%): PRINT
- 2610 NI% = NI% +1
- 2620 PRINT NI%;") ";:NC = 35: GOSUB 150: GOSUB 75: IF ND >3 THEN 2620
- 2630 IF I$ = CHR$(13) THEN 2650
- 2640 IG$(NI%) = I$: GOTO 2610
- 2650 NI% = NI% -1:C = 0: HOME
- 2660 FOR X = 1 TO NI%: PRINT X;") ";IG$(X):C = C +1: IF C >15 THEN GOSUB 355
- 2670 NEXT
- 2680 VTAB 22: PRINT "IS THIS CORRECT? ";: GET I$: PRINT : IF I$ < >"Y" THEN NI% = N1%: GOTO 2590
- 2690 GOSUB 950: GOSUB 600: GOSUB 450
- 2700 GOSUB 500: GOTO 30
- 2800 GOSUB 850
- 2810 TL$ = "REENTER PREPARATION INSTRUCTIONS"
- 2820 T1$ = NR$(PN): GOSUB 225
- 2830 HT = 1:VT = 5: GOSUB 100
- 2840 HOME : FOR X = 1 TO NW%: PRINT WD$(X): NEXT
- 2850 VTAB 22: HTAB 1: PRINT "IF THIS IS CORRECT HIT 'RETURN' ";: GET I$: PRINT : IF I$ < > CHR$(13) THEN GOTO 2800
- 2860 GOSUB 900: GOSUB 650: GOSUB 450
- 2870 GOSUB 500
- 2880 GOTO 30
- 2900 HOME : PRINT : PRINT "ARE YOU SURE YOU WANT TO DELETE :": PRINT
- 2910 PRINT NR$(PN);"....?";: GET I$
- 2920 PRINT I$: IF I$ < >"Y" THEN GOTO 2000
- 2930 GOSUB 800: GOSUB 850:N1% = NI%:WS% = NW%
- 2940 GOSUB 900: GOSUB 950
- 2950 NR$(PN) = "DELETED":NS% = 0:TR%(PN) = 0
- 2960 GOSUB 450: GOTO 30
- 3000 TL$ = "INDEX": GOSUB 200
- 3010 IF N <1 THEN GOSUB 410: GOTO 30
- 3020 PRINT : PRINT "INDEX SELECTIONS": POKE 32,5: PRINT
- 3030 PRINT "1= LIST ALL RECIPES BY PAGE NUMBER": PRINT "2= LIST RECIPES BY CATEGORY"
- 3040 PRINT "3= RETURN TO MAIN MENU": POKE 32,0: PRINT : PRINT
- 3050 PM$ = "INDEX CHOICE: ":UL = 3: GOSUB 300:C1 = CH
- 3060 IF CH = 3 THEN 30
- 3070 ON C1 GOTO 3100,3400
- 3080 TL$ = "INDEX": GOSUB 200
- 3100 GOSUB 375: GOSUB 325: GOSUB 200:C = 0
- 3110 FOR PN = 1 TO N: IF TR%(PN) = 0 THEN 3190
- 3120 PRINT PN;" "; SPC( PN <10); SPC( PN <100); SPC( PN <1000);NR$(PN)
- 3130 IF PR >0 THEN 3190
- 3140 C = C +1: IF C <16 THEN 3190
- 3150 VTAB 22: PRINT "ENTER PAGE NUMBER DESIRED"
- 3160 VTAB 23: PRINT "OR HIT 'RETURN' FOR MORE: ";:NC = 3: GOSUB 150
- 3170 IF I$ < > CHR$(13) THEN PN = VAL(I$): GOTO 3220
- 3180 C = 0: HOME : PRINT
- 3190 NEXT
- 3200 IF PR >0 THEN 30
- 3210 PRINT : PRINT "PAGE NUMBER DESIRED: ";:NC = 3: GOSUB 150
- 3220 GOSUB 4500
- 3230 GOTO 30
- 3400 TL$ = "CATEGORY INDEX": GOSUB 200:C = 0
- 3410 POKE 32,4: PRINT : FOR X = 1 TO NH: PRINT X;". ";HD$(X): NEXT : POKE 32,0: PRINT
- 3420 HTAB 1: VTAB NH +7: CALL CS:PM$ = "WHICH HEADING: ":UL = NH: GOSUB 300:T = CH
- 3430 GOSUB 375: GOSUB 325
- 3440 TL$ = HD$(T): GOSUB 200
- 3450 FOR PN = 1 TO N: IF TR%(PN) < >T THEN GOTO 3520
- 3460 PRINT PN;" "; SPC( PN <10); SPC( PN <100); SPC( PN <1000);NR$(PN): IF PR >0 THEN 3520
- 3470 C = C +1: IF C <16 THEN 3520
- 3480 VTAB 22: PRINT "ENTER PAGE NUMBER DESIRED"
- 3490 VTAB 23: PRINT "OR HIT 'RETURN' FOR MORE: ";:NC = 3: GOSUB 150
- 3500 IF I$ < > CHR$(13) THEN PN = VAL(I$): GOTO 3560
- 3510 C = 0: HOME : PRINT
- 3520 NEXT
- 3530 IF PR >0 THEN 30
- 3540 IF C = 0 THEN PRINT "THERE ARE NO RECIPES IN THIS CATEGORY": GOSUB 350: GOTO 30
- 3550 PRINT : PRINT "PAGE NUMBER DESIRED: ";:NC = 3: GOSUB 150
- 3560 GOSUB 4500
- 3570 GOTO 30
- 4000 HOME :TL$ = "PRINT RECIPES": GOSUB 200
- 4010 IF N <1 THEN GOSUB 410: GOTO 30
- 4020 PRINT "WHAT PAGE NUMBER? ";:NC = 3: GOSUB 150
- 4030 GOSUB 4500
- 4040 GOTO 30
- 4500 PN = VAL(I$): IF PN = 0 GOTO 30
- 4510 IF PN >N THEN GOSUB 420: GOTO 30
- 4520 FOR X = 1 TO 16:WD$(X) = "": NEXT
- 4530 IF TR%(PN) = 0 THEN GOSUB 420: POP : GOTO 30
- 4540 HOME : PRINT "DO YOU WANT: ": POKE 32,4: PRINT : PRINT "1. RECIPE SIZE AS LISTED"
- 4550 PRINT "2. RECIPE DOUBLED": PRINT "3. RECIPE TRIPLED": PRINT "4. RECIPE CUT IN HALF": PRINT :UL = 4:PM$ = "WHICH? "
- 4560 GOSUB 300:RS = CH: PRINT : POKE 32,0
- 4570 GOSUB 375: GOSUB 325
- 4580 GOSUB 700: GOSUB 800: GOSUB 850:C = 0
- 4590 IF RS = 1 THEN GOTO 4610
- 4600 GOSUB 6000
- 4610 IF PR >0 THEN NR$(PN) = CHR$(31) + CHR$(1) +NR$(PN) + CHR$(2) + CHR$(29)
- 4620 TL$ = NR$(PN):T1$ = "SERVES " + STR$(NS%): GOSUB 225
- 4630 FOR X = 1 TO NI%: PRINT X;") "; SPC( X <10);IG$(X): IF PR >0 THEN 4650
- 4640 C = C +1: IF C >14 THEN GOSUB 355
- 4650 NEXT
- 4660 IF PR >0 THEN GOTO 4690
- 4670 IF C >11 THEN GOSUB 355: GOTO 4700
- 4680 PRINT :C = C +1: GOTO 4700
- 4690 PRINT :TL$ = "PREPARATION INSTRUCTIONS": GOSUB 200
- 4700 IF PR = 0 THEN PRINT TAB( 8);"PREPARATION INSTRUCTIONS": PRINT :C = C +2
- 4710 IF PR >0 THEN 4760
- 4720 FOR X = 1 TO NW%: PRINT WD$(X)
- 4730 C = C +1: IF C >14 THEN GOSUB 355
- 4740 NEXT
- 4750 GOSUB 350: RETURN
- 4760 FOR X = 1 TO NW% STEP 2: PRINT WD$(X);" ";WD$(X +1): NEXT
- 4770 IF PR >0 THEN PRINT : PRINT : PRINT : PRINT : PRINT : PRINT : PRINT D$;"PR#0":PR = 0: RETURN
- 5000 HOME : VTAB 11: HTAB 10: SPEED= 100
- 5010 CALL BL: PRINT "JAN LOVES NOREEN": CALL BL: SPEED= 255: CALL BL: END
- 6000 IF RS >3 THEN NS% = NS%/2: GOTO 6020
- 6010 NS% = NS% *RS
- 6020 IF NS% <1 THEN NS% = 1
- 6030 FOR X = 1 TO NI%
- 6040 NN% = 1
- 6050 C$(1) = LEFT$(IG$(X),1)
- 6060 IF ASC(C$(1)) <49 OR ASC(C$(1)) >57 THEN 6250: REM 1ST CHARACTER WAS NOT A NUMBER
- 6070 NN% = NN% +1
- 6080 C$(NN%) = MID$ (IG$(X),NN%,1)
- 6090 IF C$(NN%) = CHR$(32) THEN NN% = NN% -1: GOTO 6120
- 6100 NN% = NN% +1
- 6110 GOTO 6080
- 6120 IF NN% = 1 THEN DE% = 1:NU% = VAL(C$(1)): GOTO 6230
- 6130 IF NN% = 2 THEN DE% = 1:NU% = VAL(C$(1) +C$(2)): GOTO 6230
- 6140 IF NN% = 3 AND C$(2) = "/" THEN DE% = VAL(C$(3)):NU% = VAL(C$(1)): GOTO 6230
- 6145 IF NN% = 3 AND C$(2) < >"-" THEN DE% = 1:NU% = VAL(C$(1) +C$(2) +C$(3)): GOTO 6230
- 6150 IF NN% >3 THEN 6180
- 6160 DE% = 1:NU% = VAL(C$(1)): GOSUB 6500
- 6170 T1$ = NM$:DE% = 1:NU% = VAL(C$(3)): GOSUB 6500:NM$ = T1$ +"-" +NM$: GOTO 6240
- 6180 WN$ = "": FOR Y = 1 TO NN%: IF C$(Y) = "-" THEN DH = Y
- 6190 NEXT
- 6200 IF DH >NN% THEN 6250
- 6210 FOR W = 1 TO DH -1:WN$ = WN$ +C$(W): NEXT
- 6220 DE% = VAL(C$(DH +3)):NU% = VAL(C$(DH +1)) + VAL(WN$) *DE%
- 6230 GOSUB 6500
- 6240 IG$(X) = NM$ + RIGHT$(IG$(X), LEN(IG$(X)) -NN%)
- 6250 NEXT
- 6260 RETURN
- 6500 WN% = 0:TF$ = ""
- 6510 IF RS = 4 THEN DE% = DE% *2: GOTO 6530
- 6520 NU% = NU% *RS
- 6530 IF DE% < = NU% THEN WN% = INT(NU%/DE%):NU% = NU% -WN% *DE%
- 6540 IF NU% = 0 THEN NM$ = STR$(WN%): GOTO 6590
- 6550 TF$ = STR$(NU%) +"/" + STR$(DE%): FOR Y = 1 TO 13: IF TF$ = RE$(Y) THEN TF$ = FA$(Y)
- 6560 NEXT
- 6570 IF WN% = 0 THEN NM$ = TF$: GOTO 6590
- 6580 NM$ = STR$(WN%) +"-" +TF$
- 6590 RETURN
- 7000 ET = PEEK(222):LN = PEEK(218) + PEEK(219) *256: POKE 216,0
- 7010 IF ET = 0 OR ET >15 THEN 7180: REM APPLESOFT ERROR
- 7020 IF ET < >6 THEN 7120
- 7030 PRINT : PRINT OP$;IX$;L$
- 7040 PRINT WR$;IX$;",R0"
- 7050 PRINT N: PRINT NX%
- 7060 PRINT CL$;IX$
- 7070 PRINT OP$;RO$;LO$
- 7080 PRINT WR$;RO$;",R0"
- 7090 PRINT 0
- 7100 PRINT CL$;RO$
- 7110 TR%(1) = 1: GOTO 9290
- 7120 IF ET < >9 THEN 7180
- 7130 CALL BL: CALL BL
- 7140 TEXT : HOME : VTAB 8: PRINT "THERE IS NO MORE ROOM ON THIS DISK!!"
- 7150 PRINT : PRINT "INITIALIZE A NEW DISK AND CONTINUE"
- 7160 PRINT "ADDING RECIPES"
- 7170 END
- 7180 TEXT : HOME : VTAB 8: PRINT "ERROR NUMBER ";ET;" IN LINE ";LN
- 7190 IF ET = 0 OR ET >15 THEN PRINT "SEE APPLESOFT MANUAL, PAGE 81": GOTO 7210
- 7200 PRINT "SEE DOS MANUAL, PAGE 115"
- 7210 END
- 9000 HOME : VTAB 8: HTAB 13: PRINT "RECIPE BOX": PRINT : HTAB 11: PRINT "JL COSTENBADER": VTAB 23: PRINT "** COPYRIGHT 1982 BY MICROSPARC, INC **"
- 9010 DIM WD$(16),TR%(300),NR$(300),IG$(25),HD$(10),J$(80)
- 9020 DIM RD(16),RI(25),L%(23),LS(16)
- 9030 DIM C$(15),FA$(15),RE$(15)
- 9040 CS = -958:BL = -1054
- 9050 D$ = CHR$(4):CL$ = D$ +"CLOSE":OP$ = D$ +"OPEN"
- 9060 IX$ = "INDEX.FILE.L60":RD$ = D$ +"READ":RF$ = "RECIPE.FILE"
- 9070 RO$ = "OPEN.RECORDS":LO$ = ",L5"
- 9080 WR$ = D$ +"WRITE"
- 9090 LF$ = ",L45":L$ = ",L60"
- 9100 N = 0:PP% = 1:PI% = 1:NH = 9:NX% = 1
- 9110 DT$ = "................................................"
- 9120 ONERR GOTO 7000
- 9130 DATA APPETIZERS/PICKLES/RELISH,SOUPS/SALADS/SAUCES/DRESSINGS,MAIN DISHES (MEAT/FISH/POULTRY),MAIN DISHES (DAIRY/CASSEROLES)
- 9140 DATA VEGETABLES,BREAD/ROLLS/PIES/COOKIES,DESSERTS,JELLY/JAM/PRESERVES,BEVERAGES
- 9150 FOR X = 1 TO NH: READ HD$(X): NEXT
- 9160 DATA 162,0,32,117,253,160,2,138,145,105,200,169,0,145,105,200,169,2,145,105,189,0,2,41,127,157,0,2,202,224,255,208,243,96
- 9170 FOR J = 800 TO 833: READ I: POKE J,I: NEXT
- 9180 DATA 2/8,4/8,6/8,2/4,2/6,4/6,2/16,4/16,6/16,8/16,10/16,12/16,14/16
- 9190 DATA 1/4,1/2,3/4,1/2,1/3,2/3,1/8,1/4,3/8,1/2,5/8,3/4,7/8
- 9200 FOR X = 1 TO 13: READ RE$(X): NEXT
- 9210 FOR X = 1 TO 13: READ FA$(X): NEXT
- 9220 PRINT D$;"RENAME";IX$;",";IX$: PRINT
- 9230 PRINT OP$;IX$;L$
- 9240 PRINT RD$;IX$;",R0"
- 9250 INPUT N: INPUT NX%
- 9260 IF N = 0 THEN GOTO 9280
- 9270 FOR X = 1 TO N: PRINT RD$;IX$;",R";X: INPUT TR%(X): CALL 800:NR$(X) = MID$ (CV$,1): NEXT
- 9280 PRINT CL$;IX$
- 9290 X = PEEK(37): REM SET ADDRESSES FOR SCREEN LINES
- 9300 FOR I = 0 TO 23: POKE 37,I: CALL -990
- 9310 L%(I) = 256 *( PEEK(41)) + PEEK(40): NEXT
- 9320 POKE 37,X: CALL -990: GOTO 30